package com.czp.ssm.bean;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class TrainExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TrainExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("ID is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("ID is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("ID =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("ID <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("ID >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("ID >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("ID <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("ID <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("ID in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("ID not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("ID between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("ID not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andTrainIdIsNull() {
            addCriterion("TRAIN_ID is null");
            return (Criteria) this;
        }

        public Criteria andTrainIdIsNotNull() {
            addCriterion("TRAIN_ID is not null");
            return (Criteria) this;
        }

        public Criteria andTrainIdEqualTo(String value) {
            addCriterion("TRAIN_ID =", value, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdNotEqualTo(String value) {
            addCriterion("TRAIN_ID <>", value, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdGreaterThan(String value) {
            addCriterion("TRAIN_ID >", value, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdGreaterThanOrEqualTo(String value) {
            addCriterion("TRAIN_ID >=", value, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdLessThan(String value) {
            addCriterion("TRAIN_ID <", value, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdLessThanOrEqualTo(String value) {
            addCriterion("TRAIN_ID <=", value, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdLike(String value) {
            addCriterion("TRAIN_ID like", value, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdNotLike(String value) {
            addCriterion("TRAIN_ID not like", value, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdIn(List<String> values) {
            addCriterion("TRAIN_ID in", values, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdNotIn(List<String> values) {
            addCriterion("TRAIN_ID not in", values, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdBetween(String value1, String value2) {
            addCriterion("TRAIN_ID between", value1, value2, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainIdNotBetween(String value1, String value2) {
            addCriterion("TRAIN_ID not between", value1, value2, "trainId");
            return (Criteria) this;
        }

        public Criteria andTrainPriceIsNull() {
            addCriterion("TRAIN_PRICE is null");
            return (Criteria) this;
        }

        public Criteria andTrainPriceIsNotNull() {
            addCriterion("TRAIN_PRICE is not null");
            return (Criteria) this;
        }

        public Criteria andTrainPriceEqualTo(BigDecimal value) {
            addCriterion("TRAIN_PRICE =", value, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andTrainPriceNotEqualTo(BigDecimal value) {
            addCriterion("TRAIN_PRICE <>", value, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andTrainPriceGreaterThan(BigDecimal value) {
            addCriterion("TRAIN_PRICE >", value, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andTrainPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("TRAIN_PRICE >=", value, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andTrainPriceLessThan(BigDecimal value) {
            addCriterion("TRAIN_PRICE <", value, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andTrainPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("TRAIN_PRICE <=", value, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andTrainPriceIn(List<BigDecimal> values) {
            addCriterion("TRAIN_PRICE in", values, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andTrainPriceNotIn(List<BigDecimal> values) {
            addCriterion("TRAIN_PRICE not in", values, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andTrainPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("TRAIN_PRICE between", value1, value2, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andTrainPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("TRAIN_PRICE not between", value1, value2, "trainPrice");
            return (Criteria) this;
        }

        public Criteria andStartDateIsNull() {
            addCriterion("START_DATE is null");
            return (Criteria) this;
        }

        public Criteria andStartDateIsNotNull() {
            addCriterion("START_DATE is not null");
            return (Criteria) this;
        }

        public Criteria andStartDateEqualTo(String value) {
            addCriterion("START_DATE =", value, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateNotEqualTo(String value) {
            addCriterion("START_DATE <>", value, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateGreaterThan(String value) {
            addCriterion("START_DATE >", value, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateGreaterThanOrEqualTo(String value) {
            addCriterion("START_DATE >=", value, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateLessThan(String value) {
            addCriterion("START_DATE <", value, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateLessThanOrEqualTo(String value) {
            addCriterion("START_DATE <=", value, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateLike(String value) {
            addCriterion("START_DATE like", value, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateNotLike(String value) {
            addCriterion("START_DATE not like", value, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateIn(List<String> values) {
            addCriterion("START_DATE in", values, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateNotIn(List<String> values) {
            addCriterion("START_DATE not in", values, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateBetween(String value1, String value2) {
            addCriterion("START_DATE between", value1, value2, "startDate");
            return (Criteria) this;
        }

        public Criteria andStartDateNotBetween(String value1, String value2) {
            addCriterion("START_DATE not between", value1, value2, "startDate");
            return (Criteria) this;
        }

        public Criteria andEndDateIsNull() {
            addCriterion("END_DATE is null");
            return (Criteria) this;
        }

        public Criteria andEndDateIsNotNull() {
            addCriterion("END_DATE is not null");
            return (Criteria) this;
        }

        public Criteria andEndDateEqualTo(String value) {
            addCriterion("END_DATE =", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateNotEqualTo(String value) {
            addCriterion("END_DATE <>", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateGreaterThan(String value) {
            addCriterion("END_DATE >", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateGreaterThanOrEqualTo(String value) {
            addCriterion("END_DATE >=", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateLessThan(String value) {
            addCriterion("END_DATE <", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateLessThanOrEqualTo(String value) {
            addCriterion("END_DATE <=", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateLike(String value) {
            addCriterion("END_DATE like", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateNotLike(String value) {
            addCriterion("END_DATE not like", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateIn(List<String> values) {
            addCriterion("END_DATE in", values, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateNotIn(List<String> values) {
            addCriterion("END_DATE not in", values, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateBetween(String value1, String value2) {
            addCriterion("END_DATE between", value1, value2, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateNotBetween(String value1, String value2) {
            addCriterion("END_DATE not between", value1, value2, "endDate");
            return (Criteria) this;
        }

        public Criteria andStartStationNameIsNull() {
            addCriterion("START_STATION_NAME is null");
            return (Criteria) this;
        }

        public Criteria andStartStationNameIsNotNull() {
            addCriterion("START_STATION_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andStartStationNameEqualTo(String value) {
            addCriterion("START_STATION_NAME =", value, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameNotEqualTo(String value) {
            addCriterion("START_STATION_NAME <>", value, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameGreaterThan(String value) {
            addCriterion("START_STATION_NAME >", value, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameGreaterThanOrEqualTo(String value) {
            addCriterion("START_STATION_NAME >=", value, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameLessThan(String value) {
            addCriterion("START_STATION_NAME <", value, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameLessThanOrEqualTo(String value) {
            addCriterion("START_STATION_NAME <=", value, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameLike(String value) {
            addCriterion("START_STATION_NAME like", value, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameNotLike(String value) {
            addCriterion("START_STATION_NAME not like", value, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameIn(List<String> values) {
            addCriterion("START_STATION_NAME in", values, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameNotIn(List<String> values) {
            addCriterion("START_STATION_NAME not in", values, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameBetween(String value1, String value2) {
            addCriterion("START_STATION_NAME between", value1, value2, "startStationName");
            return (Criteria) this;
        }

        public Criteria andStartStationNameNotBetween(String value1, String value2) {
            addCriterion("START_STATION_NAME not between", value1, value2, "startStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameIsNull() {
            addCriterion("END_STATION_NAME is null");
            return (Criteria) this;
        }

        public Criteria andEndStationNameIsNotNull() {
            addCriterion("END_STATION_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andEndStationNameEqualTo(String value) {
            addCriterion("END_STATION_NAME =", value, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameNotEqualTo(String value) {
            addCriterion("END_STATION_NAME <>", value, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameGreaterThan(String value) {
            addCriterion("END_STATION_NAME >", value, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameGreaterThanOrEqualTo(String value) {
            addCriterion("END_STATION_NAME >=", value, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameLessThan(String value) {
            addCriterion("END_STATION_NAME <", value, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameLessThanOrEqualTo(String value) {
            addCriterion("END_STATION_NAME <=", value, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameLike(String value) {
            addCriterion("END_STATION_NAME like", value, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameNotLike(String value) {
            addCriterion("END_STATION_NAME not like", value, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameIn(List<String> values) {
            addCriterion("END_STATION_NAME in", values, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameNotIn(List<String> values) {
            addCriterion("END_STATION_NAME not in", values, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameBetween(String value1, String value2) {
            addCriterion("END_STATION_NAME between", value1, value2, "endStationName");
            return (Criteria) this;
        }

        public Criteria andEndStationNameNotBetween(String value1, String value2) {
            addCriterion("END_STATION_NAME not between", value1, value2, "endStationName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameIsNull() {
            addCriterion("START_CITY_NAME is null");
            return (Criteria) this;
        }

        public Criteria andStartCityNameIsNotNull() {
            addCriterion("START_CITY_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andStartCityNameEqualTo(String value) {
            addCriterion("START_CITY_NAME =", value, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameNotEqualTo(String value) {
            addCriterion("START_CITY_NAME <>", value, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameGreaterThan(String value) {
            addCriterion("START_CITY_NAME >", value, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameGreaterThanOrEqualTo(String value) {
            addCriterion("START_CITY_NAME >=", value, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameLessThan(String value) {
            addCriterion("START_CITY_NAME <", value, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameLessThanOrEqualTo(String value) {
            addCriterion("START_CITY_NAME <=", value, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameLike(String value) {
            addCriterion("START_CITY_NAME like", value, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameNotLike(String value) {
            addCriterion("START_CITY_NAME not like", value, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameIn(List<String> values) {
            addCriterion("START_CITY_NAME in", values, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameNotIn(List<String> values) {
            addCriterion("START_CITY_NAME not in", values, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameBetween(String value1, String value2) {
            addCriterion("START_CITY_NAME between", value1, value2, "startCityName");
            return (Criteria) this;
        }

        public Criteria andStartCityNameNotBetween(String value1, String value2) {
            addCriterion("START_CITY_NAME not between", value1, value2, "startCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameIsNull() {
            addCriterion("END_CITY_NAME is null");
            return (Criteria) this;
        }

        public Criteria andEndCityNameIsNotNull() {
            addCriterion("END_CITY_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andEndCityNameEqualTo(String value) {
            addCriterion("END_CITY_NAME =", value, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameNotEqualTo(String value) {
            addCriterion("END_CITY_NAME <>", value, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameGreaterThan(String value) {
            addCriterion("END_CITY_NAME >", value, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameGreaterThanOrEqualTo(String value) {
            addCriterion("END_CITY_NAME >=", value, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameLessThan(String value) {
            addCriterion("END_CITY_NAME <", value, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameLessThanOrEqualTo(String value) {
            addCriterion("END_CITY_NAME <=", value, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameLike(String value) {
            addCriterion("END_CITY_NAME like", value, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameNotLike(String value) {
            addCriterion("END_CITY_NAME not like", value, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameIn(List<String> values) {
            addCriterion("END_CITY_NAME in", values, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameNotIn(List<String> values) {
            addCriterion("END_CITY_NAME not in", values, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameBetween(String value1, String value2) {
            addCriterion("END_CITY_NAME between", value1, value2, "endCityName");
            return (Criteria) this;
        }

        public Criteria andEndCityNameNotBetween(String value1, String value2) {
            addCriterion("END_CITY_NAME not between", value1, value2, "endCityName");
            return (Criteria) this;
        }

        public Criteria andTrainPositionIsNull() {
            addCriterion("TRAIN_POSITION is null");
            return (Criteria) this;
        }

        public Criteria andTrainPositionIsNotNull() {
            addCriterion("TRAIN_POSITION is not null");
            return (Criteria) this;
        }

        public Criteria andTrainPositionEqualTo(String value) {
            addCriterion("TRAIN_POSITION =", value, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionNotEqualTo(String value) {
            addCriterion("TRAIN_POSITION <>", value, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionGreaterThan(String value) {
            addCriterion("TRAIN_POSITION >", value, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionGreaterThanOrEqualTo(String value) {
            addCriterion("TRAIN_POSITION >=", value, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionLessThan(String value) {
            addCriterion("TRAIN_POSITION <", value, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionLessThanOrEqualTo(String value) {
            addCriterion("TRAIN_POSITION <=", value, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionLike(String value) {
            addCriterion("TRAIN_POSITION like", value, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionNotLike(String value) {
            addCriterion("TRAIN_POSITION not like", value, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionIn(List<String> values) {
            addCriterion("TRAIN_POSITION in", values, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionNotIn(List<String> values) {
            addCriterion("TRAIN_POSITION not in", values, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionBetween(String value1, String value2) {
            addCriterion("TRAIN_POSITION between", value1, value2, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andTrainPositionNotBetween(String value1, String value2) {
            addCriterion("TRAIN_POSITION not between", value1, value2, "trainPosition");
            return (Criteria) this;
        }

        public Criteria andStockIsNull() {
            addCriterion("STOCK is null");
            return (Criteria) this;
        }

        public Criteria andStockIsNotNull() {
            addCriterion("STOCK is not null");
            return (Criteria) this;
        }

        public Criteria andStockEqualTo(Long value) {
            addCriterion("STOCK =", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotEqualTo(Long value) {
            addCriterion("STOCK <>", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThan(Long value) {
            addCriterion("STOCK >", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThanOrEqualTo(Long value) {
            addCriterion("STOCK >=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThan(Long value) {
            addCriterion("STOCK <", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThanOrEqualTo(Long value) {
            addCriterion("STOCK <=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockIn(List<Long> values) {
            addCriterion("STOCK in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotIn(List<Long> values) {
            addCriterion("STOCK not in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockBetween(Long value1, Long value2) {
            addCriterion("STOCK between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotBetween(Long value1, Long value2) {
            addCriterion("STOCK not between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andTrainNumberIsNull() {
            addCriterion("TRAIN_NUMBER is null");
            return (Criteria) this;
        }

        public Criteria andTrainNumberIsNotNull() {
            addCriterion("TRAIN_NUMBER is not null");
            return (Criteria) this;
        }

        public Criteria andTrainNumberEqualTo(String value) {
            addCriterion("TRAIN_NUMBER =", value, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberNotEqualTo(String value) {
            addCriterion("TRAIN_NUMBER <>", value, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberGreaterThan(String value) {
            addCriterion("TRAIN_NUMBER >", value, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberGreaterThanOrEqualTo(String value) {
            addCriterion("TRAIN_NUMBER >=", value, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberLessThan(String value) {
            addCriterion("TRAIN_NUMBER <", value, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberLessThanOrEqualTo(String value) {
            addCriterion("TRAIN_NUMBER <=", value, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberLike(String value) {
            addCriterion("TRAIN_NUMBER like", value, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberNotLike(String value) {
            addCriterion("TRAIN_NUMBER not like", value, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberIn(List<String> values) {
            addCriterion("TRAIN_NUMBER in", values, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberNotIn(List<String> values) {
            addCriterion("TRAIN_NUMBER not in", values, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberBetween(String value1, String value2) {
            addCriterion("TRAIN_NUMBER between", value1, value2, "trainNumber");
            return (Criteria) this;
        }

        public Criteria andTrainNumberNotBetween(String value1, String value2) {
            addCriterion("TRAIN_NUMBER not between", value1, value2, "trainNumber");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}